
03.09.2011, 00:06
|
Новичок на форуме
|
|
Регистрация: 02.09.2011
Сообщений: 3
|
|
Как подгрузить данные с чужого домена, XSS-proof?
Здравствуйте.
Судя по прочитанному и усвоенному мной материалу два основных способа подгружать данные асинхронно - либо используя объект XMLHttpRequest, либо динамически подключая <script>. Первый способ [не очень понятно по каким-таким причинам безопасности] не работает, если попытаться загрузить данные с чужого домена. Второй способ все-таки позволяет загрузить данные, но загруженный скрипт исполняется.
Вопрос #1. Как загрузить данные с чужого домена, не будучи уверенным, что они не содержат вредоносного кода?
Вопрос #2. Не считаете ли вы запрет кроссдоменных запросы XHR и разрешение оных в JS-инъекции дебилизмом? Ведь XHR можно пропарсить (eval маст дай) и не допустить вредных запросов, а проверить подключаемый скрипт перед интерпретацией не получится.
(P.S. написано исходя из текущих знаний. может, я ошибаюсь.)
|
|

03.09.2011, 00:21
|
 |
⊞ Развернуть
|
|
Регистрация: 11.01.2010
Сообщений: 1,810
|
|
Сообщение от Actine
|
Как загрузить данные с чужого домена, не будучи уверенным, что они не содержат вредоносного кода?
|
Если на другом домене никто не позаботился о том, чтобы Вы смогли получить данные JS'ом, то Вы их не получите JS'ом.
Сообщение от Actine
|
Вопрос #2. Не считаете ли вы запрет кроссдоменных запросы XHR и разрешение оных в JS-инъекции дебилизмом? Ведь XHR можно пропарсить (eval маст дай) и не допустить вредных запросов, а проверить подключаемый скрипт перед интерпретацией не получится.
|
А кто Вас заставляет подключать скрипт, указывающий на непонятный файл на другом домене? И вообще, ограничения на XHR введены не для Вашей защиты, а для защиты пользователя, которому, может быть, на его любимом сайтике при заходе пишут "Привет, %username%! Твой текущий пароль: %password%" который, скажем, авторизуется по IP. А Вы возьмете и отправите какой-нибудь запрос вида ?act=delete&target=all&confirm
|
|

03.09.2011, 17:04
|
Новичок на форуме
|
|
Регистрация: 02.09.2011
Сообщений: 3
|
|
Насчет применения. Допустим, сотворяется распределенная децентрализированная социальная сеть. Допустим, есть 5 отдельных нодов на разных доменах. Допустим, нужно сделать поиск человека по всем нодам. Первый приходящий на ум вариант, не грузящий сервер, с которого загружена основная страница - это опросить все ноды "аджаксом" и обработать полученные результаты. В то же время, даная социальная сеть есть открытой, т.е. каждый может зарегать ноду и будет сам себе админ. Т.е. есть шанс, что при загрузке скрипта с какой-то ноды вместо набора данных я получу location.href="somesite?login=&pwd="
Вариантов подключить скрипт, не запустив его, нет?
|
|

03.09.2011, 17:52
|
х.з
|
|
Регистрация: 21.11.2010
Сообщений: 4,588
|
|
введи какой нибудь маркер. если в тексте аякс ответа присутствует маркер-то это скрипт- соответственно подключить этот ответ как скрипт(несколько вариантов ) ,если нет маркера использовать ответ по другому.
Сообщение от Actine
|
Допустим, есть 5 отдельных нодов на разных доменах.
|
а субдомены что мешает использовать для этих целей?
|
|

03.09.2011, 18:01
|
 |
⊞ Развернуть
|
|
Регистрация: 11.01.2010
Сообщений: 1,810
|
|
Сообщение от dmitriymar
|
а субдомены что мешает использовать для этих целей?
|
На субдомены всё равно отправлять XHR запросы нельзя.
Сообщение от Actine
|
Вариантов подключить скрипт, не запустив его, нет?
|
Без соответствующих настроек на сайте со скриптом — нет.
|
|

03.09.2011, 22:08
|
Кандидат Javascript-наук
|
|
Регистрация: 20.11.2010
Сообщений: 143
|
|
curl? не js конечно, но получать данные вполне возможно
__________________
Последний раз редактировалось Slavenin, 03.09.2011 в 22:25.
|
|
|
|